package com.hpli.trigger.api;


import com.hpli.trigger.api.dto.*;
import com.hpli.trigger.api.response.Response;

import java.util.List;

/**
 * @Author: 汀
 * @CreateTime: 2025-04-09
 * @Description: 抽奖服务接口
 * @Version: 1.0
 */

public interface IRaffleStrategyService {

    /**
     * 抽奖服务接口
     * @param strategyId 策略ID
     * @return 装配结果
     */
    Response<Boolean> strategyArmory(Long strategyId);

    /**
     * 查询策略中奖品列表
     * @param requestDTO 请求参数
     * @return 奖品列表数据
     */
    Response<List<RaffleAwardListResponseDTO>> queryRaffleAwardList(RaffleAwardListRequestDTO requestDTO);

    /**
     * 查询抽奖策略权重规则，给用户展示出抽奖N次后必中奖奖品范围
     * @param requestDTO 请求对象
     * @return 抽奖策略权重规则
     */
    Response<List<RaffleStrategyRuleWeightResponseDTO>> queryRaffleStrategyRuleWeight(RaffleStrategyRuleWeightRequestDTO requestDTO);

    /**
     * 随机抽奖接口
     * @param requestDTO 请求参数
     * @return 抽奖结果
     */
    Response<RaffleStrategyResponseDTO> randomRaffle(RaffleStrategyRequestDTO requestDTO);
}
